home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)tn.d64
/
bal. checkbook.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
8KB
|
267 lines
10 REM *************************
20 REM *** BALANCE CHECKBOOK ***
30 REM *************************
40 REM
50 REM
60 REM COPYRIGHT(C) 1985
70 REM KENT M. BRIDWELL
80 REM
90 REM
100 CLR:RESTORE:POKE53280,0:POKE53281,0:GOSUB210:PRINT"[156]OPTIONS:"
110 PRINTTAB(4)"[155](B) [154]- BALANCE CHECKBOOK"
120 PRINTTAB(4)"[155](V) [154]- VERIFY CHECKBOOK REGISTER"
130 PRINT" [158]<PRESS LETTER KEY>":POKE198,0
140 GETK$:IFK$=""THEN140
150 IFK$="B"THENGOSUB210:GOTO270
160 IFK$="V"THEN1220
170 GOTO140
180 REM
190 REM ------ TITLE HEADER ------
200 REM
210 PRINT"[147][153]"TAB(10)"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
220 PRINTTAB(10)"[153][221][155]BALANCE CHECKBOOK[153][221]"
230 PRINTTAB(10)"[153][173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]":RETURN
240 REM
250 REM ------- INFORMATION -------
260 REM
270 CLR:RESTORE:DIMCK$(500),CA$(500),SD$(50),DA$(50)
280 Q$=CHR$(34):TB$=CHR$(16):C1=0:C2=0
290 DT$="":INPUT"[156]STATEMENT DATE[154]";DT$:IFDT$=""THENPRINT"[145][145][145]":GOTO290
300 PRINT"[156]BALANCE ACCORDING TO CHECKBOOK REGISTER"
310 CR$="":INPUT" [154]";CR$
320 IFCR$=""THENPRINT"[145][145]":GOTO310
330 BA$="":INPUT"[156]NEW BALANCE PER STATEMENT[154]";BA$
340 IFBA$=""THENPRINT"[145][145][145]":GOTO330
350 GOSUB210:PRINT"[156]ARE THERE ANY CHECKS OUTSTANDING WHICH"
360 PRINT"HAVE NOT YET CLEARED?[160]([155]Y/N[156])":POKE198,0
370 GETK1$:IFK1$<>"Y"ANDK1$<>"N"THEN370
380 IFK1$="Y"THENGOSUB410
390 GOTO570:REM ---> INFO CONT'D
400 REM
410 REM ---- OUTSTANDING CHECKS ----
420 REM
430 PRINT"[129]FOR EACH OUTSTANDING CHECK, ENTER (WHEN"
440 PRINT"REQUESTED) THE CHECK NUMBER AND AMOUNT."
450 PRINT"AFTER THE LAST CHECK HAS BEEN LISTED, "
460 PRINT"ENTER ";Q$;"*";Q$;" [129]TO EXIT."
470 INPUT" [152]PRESS <[155]RETURN[152]> WHEN READY TO START[144]";K:C1=1
480 GOSUB210:PRINT"[154] (ENTER [155]";Q$;"*";Q$;" [154]TO EXIT)"
490 CK$(C1)="":INPUT"[129]CHECK NUMBER[155]";CK$(C1)
500 IFCK$(C1)=""THENPRINT"[145][145][145]":GOTO490
510 IFCK$(C1)="*"THENC1=C1-1:GOTO590
520 CA$(C1)="":INPUT"[129]CHECK AMOUNT[155]";CA$(C1)
530 IFCA$(C1)=""THENPRINT"[145][145][145]":GOTO520
540 IFCA$(C1)="*"THENC1=C1-1:RETURN
550 C1=C1+1:GOTO480
560 REM
570 REM ----- INFORMATION CONT'D -----
580 REM
590 GOSUB210:PRINT"[156]ARE THERE ANY DEPOSITS WHICH HAVE NOT "
600 PRINT"BEEN POSTED YET?[160]([155]Y/N[156])":POKE198,0
610 GETK2$:IFK2$<>"Y"ANDK2$<>"N"THEN610
620 IFK2$="Y"THENGOSUB650
630 GOTO830:REM ---> CALCULATIONS
640 REM
650 REM ----- UNPOSTED DEPOSITS -----
660 REM
670 PRINT"[129]FOR EACH UNPOSTED DEPOSIT, ENTER (WHEN"
680 PRINT"REQUESTED) THE SOURCE AND AMOUNT."
690 PRINT"AFTER THE LAST DEPOSIT HAS BEEN LISTED,"
700 PRINT"ENTER ";Q$;"*";Q$;" [129]TO EXIT."
710 INPUT" [152]PRESS <[155]RETURN[152]> WHEN READY TO START[144]";K:C2=1
720 GOSUB210:PRINT"[154] (ENTER [155]";Q$;"*";Q$;" [154]TO EXIT)"
730 PRINT"[129](16 CHARACTERS MAXIMUM)[145][145]"
740 SD$(C2)="":INPUT"SOURCE[155]";SD$(C2)
750 IFLEN(SD$(C2))>16THENPRINT" ** TOO LONG! **":FORT=1TO1000:NEXTT:GOTO720
760 IFSD$(C2)=""THENSD$(C2)="<NO ENTRY>"
770 IFSD$(C2)="*"THENC2=C2-1:GOTO850
780 DA$(C2)="":INPUT"[129]DEPOSIT AMOUNT[155]";DA$(C2)
790 IFDA$(C2)=""THENPRINT"[145][145][145]":GOTO780
800 IFDA$(C2)="*"THENC2=C2-1:RETURN
810 C2=C2+1:GOTO720
820 REM
830 REM ------ CALCULATIONS ------
840 REM
850 GOSUB210:PRINT"[154] * * * NOW COMPUTING * * *"
860 CK=0:FORI=1TOC1
870 CK=CK+VAL(CA$(I)):NEXTI
880 DP=0:FORI=1TOC2
890 DP=DP+VAL(DA$(I)):NEXTI
900 BA=(INT((VAL(BA$)+DP-CK)*100+.5))/100
910 CR=(INT(VAL(CR$)*100+.5))/100:IFBA=CRTHEN1430:REM ---> BALANCED!
920 REM
930 REM ------ NOT BALANCED! ------
940 REM
950 PRINT"[145][156] [210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210][210]"
960 PRINT"[159] BAD NEWS! - THE FIGURES DO NOT BALANCE"
970 PRINT"[156] [197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"
980 PRINT"[129] BALANCE FROM STATEMENT:"
990 PRINT"[158] BEFORE ADJUSTMENTS>[155] $";(INT(VAL(BA$)*100+.5))/100
1000 PRINT"[152] AFTER ADJUSTMENTS>[155] $";BA
1010 PRINT"[153] BALANCE FROM CHECKBOOK>[155] $";CR
1020 PRINT" [155][192][192][192][192][192][192][192][192][192][192][133]"
1030 PRINT"[154] NET DIFFERENCE: [155]$";(INT(ABS(BA-CR)*100+.5))/100
1040 INPUT" [152]PRESS <[155]RETURN[152]> TO SEE PRESENT OPTIONS[144]";K$
1050 REM
1060 REM ----- OPTIONS MENU -----
1070 REM
1080 GOSUB210:PRINT"[154]CHOICES:"
1090 PRINTTAB(4)"[156]([155]1[156]) TRY AGAIN TO BALANCE"
1100 PRINTTAB(4)"[156]([155]2[156]) REVIEW/CORRECT ENTRIES"
1110 PRINTTAB(4)"[156]([155]3[156]) VERIFY CHECKBOOK ENTRIES"
1120 PRINTTAB(4)"[156]([155]4[156]) GIVE UP FOR NOW":POKE198,0
1130 GETK$:IFK$=""THEN1130
1140 IFK$="1"THENGOSUB210:GOTO270
1150 IFK$="2"THEN1820
1160 IFK$="3"THEN1220
1170 IFK$="4"THENGOSUB210:PRINT"[129]FINI![154]":FORT=1TO2000:NEXT:SYS65126
1180 GOTO1130
1190 REM
1200 REM --- VERIFY CHECK REGISTER ---
1210 REM
1220 GOSUB210:PRINT"[154] *** VERIFY CHECKBOOK ENTRIES ***"
1230 PRINT"[152](TO ENTER A DEPOSIT, PRESS <RETURN> TO"
1240 PRINT"SKIP CHECK INPUT.)"
1250 INPUT"[156]BALANCE AT LAST STATEMENT[155]";BB
1260 PRINT"[152]----------------<[155]START[152]>-----------------"
1270 PRINT"[153]BALANCE FORWARD: $";BB
1280 PRINT"[158] (ENTER ";Q$;"*";Q$;" [158]TO EXIT)"
1290 CK$="0":DP$="0":INPUT"[145][145][145][145][145][145][129]TRANSACTION: [155]CHECK AMOUNT[158]";CK$
1300 IFCK$="*"THEN1370
1310 IFVAL(CK$)>0THEN1340
1320 INPUT" [155]DEPOSIT AMOUNT[158]";DP$
1330 IFDP$="*"THEN1370
1340 BB=BB+VAL(DP$)-VAL(CK$)
1350 PRINTTAB(15)"[153]NEW BALANCE: [155]$";(INT(BB*100+.5))/100
1360 PRINT"[152]----------------------------------------":GOTO1290
1370 GOSUB210:PRINT"[154]VERIFIED CHECKBOOK BALANCE = [155]$";BB
1380 PRINT"[156]CHOICES:"
1390 PRINTTAB(4)"[156]([155]1[156]) TRY TO BALANCE CHECKBOOK":GOTO1100
1400 REM
1410 REM -------- BALANCED! --------
1420 REM
1430 PRINT"[145][153] >>> CHECKBOOK BALANCED! [153]<<< "
1440 PRINT"[154]YOUR CURRENT":PRINT"ADJUSTED BALANCE.......[155]$";(INT(BA*100+.5))/100
1450 PRINT"[129]DO YOU WANT A PRINTOUT? ([155]Y/N[129])":POKE198,0
1460 GETK$:IFK$<>"Y"ANDK$<>"N"THEN1460
1470 GOSUB210
1480 IFK$="N"THENPRINT"[129]FINI![154]":FORT=1TO2000:NEXT:SYS65126
1490 REM
1500 REM -------- PRINTOUT --------
1510 REM
1520 PRINT"[154]BE SURE THAT PRINTER IS SET UP PROPERLY."
1530 INPUT"PRESS <[155]RETURN[154]> WHEN READY.[144]";K
1540 PRINT"[150] >>> PRINTER ACTIVATED! <<<"
1550 OPEN4,4:PRINT#4:PRINT#4
1560 PRINT#4,CHR$(14)" * * CHECKBOOK BALANCE * *"
1570 PRINT#4,CHR$(15):PRINT#4,"STATEMENT DATED ";DT$:PRINT#4
1580 H%=INT(C1/2)
1590 IFC1=0THENPRINT#4,"(NO CHECKS OUTSTANDING)":GOTO1670
1600 PRINT#4,"CHECKS OUTSTANDING":PRINT#4,"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
1610 FORI=1TOH%
1620 PRINT#4,"#";CK$(I);TB$;"08$"+CA$(I);
1630 PRINT#4,TB$;"25#"+CK$(I+H%);TB$;"33$"+CA$(I+H%)
1640 NEXTI:I=I-1
1650 IFI+H%<C1THENPRINT#4,TB$;"25#"+CK$(C1);TB$;"33$"+CA$(C1)
1660 PRINT#4:PRINT#4,TB$;"10TOTAL: $"CK
1670 PRINT#4:PRINT#4:IFC2=0THENPRINT#4,"(NO UNPOSTED DEPOSITS)":GOTO1730
1680 PRINT#4,"DEPOSITS NOT POSTED":PRINT#4,"[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
1690 FORI=1TOC2
1700 PRINT#4," $";DA$(I);TB$;"16>"SD$(I)
1710 NEXTI
1720 PRINT#4:PRINT#4,TB$;"10TOTAL: $"DP
1730 PRINT#4,CHR$(14):PRINT#4," >> NEW BALANCE = $";BA
1740 PRINT#4,CHR$(15):PRINT#4:CLOSE4
1750 GOSUB210:PRINT"[159]OPTIONS:"
1760 PRINTTAB(4)"[154]<[155]R[154]> - [152]RUN AGAIN"
1770 PRINTTAB(4)"[154]<[155]E[154]> - [152]EXIT/END":POKE198,0
1780 GETK$:IFK$<>"R"ANDK$<>"E"THEN1780
1790 IFK$="R"THENRUN
1800 K$="4":GOTO1170
1810 REM
1820 REM --- REVIEW/CORRECT ENTRIES ---
1830 REM
1840 PRINT"[147]"TAB(8)"[156][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
1850 PRINTTAB(8)"[221][155]REVIEW/CORRECT ENTRIES[156][221]"
1860 PRINTTAB(8)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]"
1870 REM ---- <<< CHECKS >>> ----
1880 IFC1>0THEN1960
1890 PRINT"[129]CHECKS OUTSTANDING:[158] THERE ARE NO CHECKS"
1900 PRINT"REPORTED OUTSTANDING. DO YOU NOW WISH"
1910 PRINT"TO ADD ANY? [129]([155]Y/N[129])":POKE198,0
1920 GETK1$:IFK1$<>"Y"ANDK1$<>"N"THEN1920
1930 IFK1$="N"THEN2210
1940 GOSUB410:REM ---> CHECK INPUTS
1950 GOTO2210
1960 PRINT"[158]REVIEW OUTSTANDING CHECKS":AF=0:V1=1:V2=C1
1970 FORI=V1TOV2:PRINT"[153]---------------------------------------"
1980 PRINT"[129]CHECK NUMBER [155]";CK$(I)
1990 PRINT"[129]CHECK AMOUNT [155]$";CA$(I)
2000 GOSUB2550
2010 IFX$="1"THEN2150
2020 IFX$="2"THENGOSUB2070:GOTO2150
2030 IFX$="3"THENGOSUB2110:GOTO2150
2040 REM ----- (CHANGE ENTRY) -----
2050 INPUT" [156]CHECK NUMBER[158]";CK$(I)
2060 INPUT" [156]CHECK AMOUNT[158]";CA$(I):GOTO2150
2070 REM ----- (DELETE CHECK) -----
2080 FORJ=ITOC1-1:CK$(J)=CK$(J+1):CA$(J)=CA$(J+1):NEXT
2090 C1=C1-1:IFC1<0THENC1=0:I=V2
2100 RETURN
2110 REM ----- (ADD CHECK) -----
2120 C1=C1+1:FORJ=C1TO(I+1)STEP-1:CK$(J)=CK$(J-1):CA$(J)=CA$(J-1):NEXTJ
2130 INPUT" [156]CHECK NUMBER[158]";CK$(I)
2140 INPUT" [156]CHECK AMOUNT[158]";CA$(I):AF=1:RETURN
2150 NEXTI
2160 IFAF=1THENV1=I:V2=C1:AF=0:GOTO1970
2170 PRINT"[159]>> [154]ADD ONE AT END? ([155]Y/N[154])":POKE198,0
2180 GETK$:IFK$<>"Y"ANDK$<>"N"THEN2180
2190 IFK$="N"THEN2210
2200 C1=C1+1:I=C1:GOSUB2130
2210 REM ---- <<< DEPOSITS >>> ----
2220 IFC2>0THEN2290
2230 PRINT"[147][129]UNPOSTED DEPOSITS:[158] THERE ARE NO DEPOSITS";
2240 PRINT"REPORTED UNPOSTED. DO YOU NOW WISH TO"
2250 PRINT"ADD ANY? [129]([155]Y/N[129])":POKE198,0
2260 GETK2$:IFK2$<>"Y"ANDK2$<>"N"THEN2260
2270 IFK2$="N"THEN830:REM ---> CALC
2280 GOSUB650:GOTO830:REM ---> DEPOSIT INPUTS
2290 PRINT"[158]REVIEW UNPOSTED DEPOSITS":AF=0:V1=1:V2=C2
2300 FORI=V1TOV2:PRINT"[153]---------------------------------------"
2310 PRINT"[129]DEPOSIT SOURCE [155]";SD$(I)
2320 PRINT"[129]DEPOSIT AMOUNT [155]$";DA$(I)
2330 GOSUB2550
2340 IFX$="1"THEN2470
2350 IFX$="2"THENGOSUB2390:GOTO2470
2360 REM ----- (CHANGE ENTRY) -----
2370 INPUT" [156]SOURCE[158]";SD$(I)
2380 INPUT" [156]AMOUNT[158]";DA$(I):GOTO2470
2390 REM ----- (DELETE DEPOSIT) -----
2400 FORJ=ITOC2-1:SD$(J)=SD$(J+1):DA$(J)=DA$(J+1):NEXT
2410 C2=C2-1:IFC2<0THENC2=0:I=V2
2420 RETURN
2430 REM ----- (ADD DEPOSIT) -----
2440 C2=C2+1:FORJ=C2TO(I+1)STEP-1:SD$(J)=SD$(J-1):DA$(J)=DA$(J-1):NEXT
2450 INPUT" [156]SOURCE[158]";SD$(I)
2460 INPUT" [156]AMOUNT[158]";DA$(I):AF=1:RETURN
2470 NEXTI
2480 IFAF=1THENV1=I:V2=C1:AF=0:GOTO2300
2490 PRINT"[159]>> [154]ADD ONE AT END? ([155]Y/N[154])":POKE198,0
2500 GETK$:IFK$<>"Y"ANDK$<>"N"THEN2500
2510 IFK$="N"THEN2530
2520 C2=C2+1:I=C2:GOSUB2450
2530 GOTO830:REM ---> CALCULATIONS
2540 REM
2550 REM ------ REVIEW OPTIONS ------
2560 REM
2570 PRINT"[154]CHOOSE OPTION:"
2580 PRINTTAB(4)"[159]1 [152]NO CHANGE [154]<[155]RETURN [154]KEY>"
2590 PRINTTAB(4)"[159]2 [152]DELETE"
2600 PRINTTAB(4)"[159]3 [152]ADD ITEM (WILL PRECEDE THIS ONE)"
2610 PRINTTAB(4)"[159]4 [152]CORRECTION":POKE198,0
2620 GETX$:IFX$<>"1"ANDX$<>"2"ANDX$<>"3"ANDX$<>"4"ANDX$<>CHR$(13)THEN2620
2630 IFX$=CHR$(13)THENX$="1"
2640 RETURN
59999 END
60000 OPEN15,8,15,"S0:BAL. CHECKBOOK":CLOSE15:SAVE"0:BAL. CHECKBOOK",8